﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;

using LowLevelGraphics;
using LowLevelGraphics.Types.Interval;
using LowLevelGraphics.ColorSpaces;

using NUnit.Framework;

namespace UnitTests
{
    [TestFixture]
    public class ColorSpacesTest
    {
        [SetUp]
        public void SetUp()
        {
        }

        [Test]
        public void AllColorSpacesRangeTest()
        {
            int r=0;
            int g=0;
            int b=0;
            object[] aObject = null;

            Dictionary<string, List<DoubleInterval>> aRange = new Dictionary<string, List<DoubleInterval>>();

            foreach (AbstractColorSpace colorSpace in Definitions.ColorSpaces)
            {
                aRange.Add(colorSpace.GetType().Name, new List<DoubleInterval>());
                for (r = 0; r < 255; r++)
                {
                    for (g = 0; g < 255; g++)
                    {
                        for (b = 0; b < 255; b++)
                        {
                            colorSpace.Color = Color.FromArgb(r, g, b);
                            aObject = colorSpace.GetValues();
                        }
                    }
                }
            }
        }

        [TearDown]
        public void TearDown()
        {

        }
    }
}
